package com.solo.system.mapper;

import com.mybatisflex.core.query.QueryChain;
import com.solo.common.core.base.mapper.BasicMapper;
import com.solo.system.api.entity.SysDept;
import org.apache.ibatis.annotations.Mapper;

import static com.solo.system.api.entity.table.SysDeptTableDef.SysDeptTable;

/**
 * 部门Mapper
 * @author 十一
 * @since 2023/08/31 10:30
 * 人生若只如初见，何事秋风悲画扇
 **/
@Mapper
public interface SysDeptMapper extends BasicMapper<SysDept> {

    /**
     * 按代码查询部门信息
     * @param code 代码
     * @return {@link SysDept }
     */
    default SysDept selectByCode(String code) {
        return QueryChain.of(this)
                .where(SysDeptTable.Code.eq(code))
                .one();
    }

    /**
     * 按父id查询部门数量
     * @param parentId 父id
     * @return long
     */
    default long selectByParentId(Long parentId) {
        return QueryChain.of(this)
                .where(SysDeptTable.ParentId.eq(parentId))
                .count();
    }

}
